Skip to content

ci: align security jobs with the house standard - #3

Merged
boot-coco merged 1 commit into
mainfrom
ci/house-standard-security-jobs
Aug 4, 2026
Merged

ci: align security jobs with the house standard#3
boot-coco merged 1 commit into
mainfrom
ci/house-standard-security-jobs

Conversation

@owen0x6f

@owen0x6f owen0x6f commented Aug 4, 2026

Copy link
Copy Markdown

Aligns this repo's security CI with coco-dashboard, per Owen's instruction to follow that pattern and use no paid services.

Replaces PR #2, which GitHub auto-closed when its base branch (fix/identifier-allowlist) was deleted on merge — a stacked PR does not retarget itself. Same change, based on main.

Added — the two jobs coco-dashboard has that this repo lacked:

  • Semgrepsemgrep/semgrep container, --config auto --error --severity ERROR, same invocation as coco-dashboard/.github/workflows/sast.yml.
  • Dependency auditnpm audit --audit-level=high. This package declares no dependencies and ships no lockfile, so it passes trivially today. Wired up regardless so the audit becomes real and blocking the moment a dependency appears, rather than something someone must remember to add later.

Not added — OSV-Scanner. It scans a lockfile; with zero dependencies and no lockfile there is nothing for it to report on. A job that always says "nothing found" because it is looking at nothing is worse than no job — it reads as coverage. Worth adding the moment this package gains dependencies.

CodeQL kept, not replaced — measured, not assumed. It is free on public repositories, and it caught a real high-severity ReDoS in this repo's own guard script. Running Semgrep --config auto (200 rules) against that exact pattern in isolation gave 0 findings, so swapping CodeQL out for consistency would have traded a control that has already proven itself for one that misses this class.

Adds the two security jobs coco-dashboard runs that this repo lacked:

- Semgrep (semgrep/semgrep container, --config auto --error --severity ERROR)
- dependency audit via npm audit --audit-level=high

CodeQL is kept rather than replaced. It is free on public repositories, and it
caught a high-severity ReDoS in this repo's own guard script that Semgrep's 200
auto rules did not flag when run against the same pattern, so the two are
complementary and dropping either would lose coverage.

OSV-Scanner is not included: it scans a lockfile, and this package declares no
dependencies and ships no lockfile, so the job would report on nothing.

@boot-coco boot-coco left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review — Boot (审 sha 557eeb9)

Verdict: APPROVE

Same content as closed PR #2, re-reviewed against main:

  • Semgrep: semgrep/semgrep container, --config auto --error --severity ERROR. Complementary to CodeQL (CodeQL caught ReDoS that Semgrep's 200 rules missed → keep both).
  • Dependency audit: npm install --package-lock-only + npm audit --audit-level=high. Zero deps today (documented in comment), becomes blocking gate when deps added. Correct choice over OSV-Scanner (no lockfile = vacuous).
  • No job ordering issues, both independent.

Merging per DEC-074.

@boot-coco
boot-coco merged commit e989f86 into main Aug 4, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants